﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Configuration;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio;
using Entidad;
using Negocio.BL;


namespace EvolSoftWeb.UserControl
{
    public partial class HeaderControl : BaseControl
    {
        /// <summary>
        /// Instancia de clase que maneja la lógica de seguridad
        /// </summary>
        SeguridadLogic logic = new SeguridadLogic();
        UsuarioLogic usu = new UsuarioLogic();
        /// <summary>
        /// Inicializa el contenido de la página
        /// </summary>
        protected override void Inicializar()
        {
            try
            {





      
                T_S_USUARIO usuario = usu.listarUser((Global.user).ToString())[0];
                //new clsUsuarioLogic().listarUser((Global.user).ToString())[0];

                if (usuario.IND_COOKIE == Constantes.SI)
                {
                    HttpCookie cookie = Request.Cookies[DatosSesion.InicioSesion];

                    if (cookie == null)
                    {
                        cookie = new HttpCookie(DatosSesion.InicioSesion);
                    }

                    cookie[DatosSesion.User] = base.UserName;
                    cookie.Expires = DateTime.Now.AddDays(30);
                    Response.Cookies.Add(cookie);
                }
                else
                {
                    HttpCookie myCookie = new HttpCookie(DatosSesion.InicioSesion);
                    myCookie.Expires = DateTime.Now.AddDays(-2d);
                    Response.Cookies.Add(myCookie);
                }

                this.lblUsurio.Text = usuario.DES_NOMBRE + " " + usuario.ID_USUARIO;
                //this.Session[DatosSesion.IndVendedor] = usuario.IND_VENDEDOR;
                //this.Session[DatosSesion.CodigoVendedor] = usuario.COD_VENDEDOR;

            }
            catch
            {


            }



        }


        /// <summary>
        /// Obtiene el nodo principal de las opciones
        /// </summary>
        /// <returns></returns>
        protected int ObtenerNodoPrincipal()
        {
            string id = ConfigurationManager.AppSettings[DatosConfiguracion.OpcionPrincipal];
            if (!string.IsNullOrEmpty(id))
            {
                try
                {
                    return int.Parse(id);
                }
                catch (Exception)
                {
                    return 1;
                }
            }
            return 1;

        }

        /// <summary>
        /// Permite cerrar la sesión del usuario
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void lbCerrarSesion_Click(object sender, EventArgs e)
        {
            Session[DatosSesion.User] = null;
            Session[DatosSesion.NombreCliente] = null;
            Session[DatosSesion.CodigoCliente] = null;
            Session[DatosSesion.SesionNegocio] = null;
            Session[DatosSesion.SesionSucursal] = null;
            Session[DatosSesion.SesionNombreNegocio] = null;
            Session[DatosSesion.SesionNombreSucursal] = null;

            HttpCookie myCookie = new HttpCookie(DatosSesion.InicioSesion);
            myCookie.Expires = DateTime.Now.AddDays(-2d);
            Response.Cookies.Add(myCookie);


            Response.Redirect(Constantes.PaginaLogin);
        }

        /// <summary>
        /// Permite mostrar la ayuda de la opción seleccionada
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        //protected override void Inicializar()
        //{
        //    USUARIO usuario = (new SeguridadLogic().ObtenerUsuario(base.UserName));

        //    if (usuario.IND_COOKIE == Constantes.SI)
        //    {
        //        HttpCookie cookie = Request.Cookies[DatosSesion.InicioSesion];

        //        if (cookie == null)
        //        {
        //            cookie = new HttpCookie(DatosSesion.InicioSesion);
        //        }

        //        cookie[DatosSesion.User] = base.UserName;
        //        cookie.Expires = DateTime.Now.AddDays(30);
        //        Response.Cookies.Add(cookie);
        //    }
        //    else
        //    {
        //        HttpCookie myCookie = new HttpCookie(DatosSesion.InicioSesion);
        //        myCookie.Expires = DateTime.Now.AddDays(-2d);
        //        Response.Cookies.Add(myCookie);
        //    }

        //    this.lblUsurio.Text = usuario.DES_NOMBRE + " " + usuario.DES_APELLIDOS;
        //    this.Session[DatosSesion.IndVendedor] = usuario.IND_VENDEDOR;
        //    this.Session[DatosSesion.CodigoVendedor] = usuario.COD_VENDEDOR;

        //}


        protected void lbAyuda_Click(object sender, EventArgs e)
        {
            try
            {
                int id = 0;
                if (Request[Constantes.RequestIdPagina] != null)
                {
                    if (Request[Constantes.RequestSubPagina] != null)
                    {
                        id = int.Parse(Request[Constantes.RequestSubPagina].ToString());
                    }
                    else
                    {
                        id = int.Parse(Request[Constantes.RequestIdPagina].ToString());
                    }
                }

                if (id > 0)
                {
                    T_S_OPCION entity = this.logic.ObtenerOpcion(id);

                    if (entity != null)
                    {
                        this.lblNombreOpcion.Text = entity.DES_NOMBRE;
                        this.lblDesripcionOpcion.Text = entity.DES_DESCRIPCION;
                        this.lblObjetivoOpcion.Text = entity.DES_OBJETIVO;
                        this.mpeAyuda.Show();
                    }
                }
                else
                {
                    this.lblNombreOpcion.Text = Tools.GetMessage(Mensajes.OpcionTituloDefecto);
                    this.lblDesripcionOpcion.Text = Tools.GetMessage(Mensajes.OpcionObjetivoDefecto);
                    this.lblObjetivoOpcion.Text = Tools.GetMessage(Mensajes.OpcionDescripcionDefecto);
                    this.mpeAyuda.Show();
                }

            }
            catch (Exception)
            {
                this.mpeAyuda.Hide();
            }
        }


    }
}